///*
// * Interfaces
// * 
// * initial implementation : 4.9.2007
// *
// * Copyright (c) Adam Sida, asida@centrum.cz.
// * All rights reserved.
// * 
// * for license see Petra.Gis.License.txt
// */
//using System;
//using System.Collections.Generic;
//using System.Text;


//namespace Petra.Gis.Geometry
//{


//  public interface IScalar
//  {
//    double value { get; }
//  }



  
//  public interface IGeometryBase
//   {
//     double[] getEnvelope();
//     //GeometryTypes type { get;}
//     bool valid { get;}
//   }

//  public interface IPoint : IGeometryBase
//  {
//    CoordinateList origin { get; set; }
//  }

//  public interface ISimpleLinearGeometry : IGeometryBase
//   {
//    CoordinateList coordList {get;}
//   }

//  public interface IAnyLinearGeometry : IGeometryBase
//  {
//  }


//  public interface IAreaRingGeometry : IGeometryBase
//  {
//  }

//  //
//  public interface IAnyAreaGeometry : IGeometryBase
//  {
//  }


//  public interface IPathLinearComponent : IGeometryBase
//   //path component contains geometries that can be pathstring or pathring member
//   {
//     int Count { get;}
//     ILinearComponent this[int Index] { get;}
//   }


//  public interface ILinearComponent : IGeometryBase
//   //path component contains geometries that have coordList
//   {
//     CoordinateList coordList { get;}
//   }

//   public interface ICollectionComponent
//   {

//   }
  
  
//   public interface ICoordinateList //: IEnumerator
//   {
//     //void moveTo(int lPosition);

//   }

//  public unsafe class scalarValue<T> : IScalar
//    //where T : double
//  {
//    private T _value;

//    public scalarValue(T Value) {
//      _value = Value;
//    }

//    public scalarValue(ref byte[] vData, int BeginOfValue)
//    {
//      fixed (byte* beginCoord = &vData[BeginOfValue])
//      {
//        //double* tmpPtr = (double*)beginCoord;
//        _value = *((T*)beginCoord);
//      }
//    }

//    public T value
//    { get { return _value; } set { _value = value; } }
//  }



//}
